package avicit.bdp.dcs.plugin;

import com.alibaba.fastjson2.JSON;

import java.util.ArrayList;
import java.util.List;

/**
 * @金航数码科技有限责任公司
 * @作者：developer
 * @邮箱：developer@avic-digital.com
 * @创建时间： 2020-08-10 09:29
 * @类说明：在数据同步、传输过程中，存在用户对于数据传输进行特殊定制化的需求场景，包括裁剪列、转换列等工作，可以借助ETL的T过程实现(Transformer)。DataX包含了完整的E(Extract)、T(Transformer)、L(Load)支持。
 * @修改记录：DataX中Transformer配置参数
 */
public class TransformerParam {
    private String name;             // DataX中对应脱敏算法方法名称

    private Parameter parameter;     // 列下标、输入参数

    public TransformerParam() {
    }

    public TransformerParam(String name, Parameter parameter) {
        this.name = name;
        this.parameter = parameter;
    }

    public static class Parameter {
        private Integer columnIndex;
        private List<String> paras;

        public Parameter() {
        }

        public Parameter(Integer columnIndex, List<String> paras) {
            this.columnIndex = columnIndex;
            this.paras = paras;
        }

        public Integer getColumnIndex() {
            return columnIndex;
        }

        public List<String> getParas() {
            return paras;
        }

        public void setColumnIndex(Integer columnIndex) {
            this.columnIndex = columnIndex;
        }

        public void setParas(List<String> paras) {
            this.paras = paras;
        }
    }

    public String getName() {
        return name;
    }

    public Parameter getParameter() {
        return parameter;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setParameter(Parameter parameter) {
        this.parameter = parameter;
    }

    public static void main(String[] args) {
        List<TransformerParam> transformerParamList = new ArrayList<>();


        for (int i = 0; i < 2; i++) {
            TransformerParam param = new TransformerParam();
            param.setName("dx_floor");
            param.setParameter(new Parameter());
            param.getParameter().setColumnIndex(1);

            List<String> stringList = new ArrayList<>();
            stringList.add(Integer.toString(i + 1));
            param.getParameter().setParas(stringList);
            transformerParamList.add(param);
        }

        Object obj = JSON.toJSON(transformerParamList);
        System.out.println(obj.toString());
    }
}
